var tY,tM,tD,year,cld;
jQ(function(){
	jQ.ajax({
		type:"post",
		url:"controlAjax!getTodayDate.action",
		success : function(data){
			var dataObj=eval("("+data+")");
			year=tY=dataObj.year;
			tM=dataObj.month;
			tD=dataObj.day;
			jQ("#yeatSelect").val(year).change();;
		}
	});
	//选择
	jQ("#yeatSelect").change(function(){
		year=eval(jQ(this).val());
		jQ("li.year_title").empty().append(year+"年");
		loadData();//加载日历
		initSystemHoliday();//加载系统设定的节假日
		initUserHoliday();//加载自定义的节假日
	});
	//上一年
	jQ("div.mouth_fun a.y_left").click(function(){
		jQ("#yeatSelect").val(year-1).change();
	});
	//下一年
	jQ("div.mouth_fun a.y_right").click(function(){
		jQ("#yeatSelect").val(year+1).change();
	});
	//保存
	jQ("#saveButton").click(function(){
		jQ("#ALERT").unbind().html("正在保存……").dialog('open').dialog("option","buttons",{"确定":function(){return}});
		var holidays="";
		jQ("td.freetag").each(function(i){
			holidays+=jQ(this).data("data").date.year+"-"
				+jQ(this).data("data").date.month+"-"
				+jQ(this).data("data").date.day+"-"
				+jQ.trim(jQ(this).data("data").description)+"-1|";
		});
		jQ("td.nolabel").each(function(i){
			jQ(this).data("data").description=jQ.trim(jQ(this).data("data").description)==""?jQ(this).find("div.nday").text():jQ.trim(jQ(this).data("data").description);
			holidays+=jQ(this).data("data").date.year+"-"
				+jQ(this).data("data").date.month+"-"
				+jQ(this).data("data").date.day+"-"
				+jQ.trim(jQ(this).data("data").description)+"-0|";
		});
		holidays = (holidays=="" ? "nothing" : holidays);
		jQ.ajax({
			type:"post",
			url:"controlAjax!setHoliday.action",
			data:{
				year:year,
				holidays:holidays
			},
			success:function(data){
				var dataObj=eval("("+data+")");
				jQ("#yeatSelect").val(year).change();
				jQ("#ALERT").unbind().html(dataObj["result"]).dialog('open').dialog("option","buttons",{"确定" : function(){jQ(this).dialog("close");}});
			}
		});
	});
	//取消
	jQ("#cancelButton").click(function(){
		jQ("#yeatSelect").val(year).change();
	});
	//恢复本年默认节假日
	jQ("#resetButton").click(function(){
		for(var i=0;i<12;i++){
			for(var j=0;j<42;j++){
				jQ("#day_"+i+"_"+j).removeClass("freetag").removeClass("holiday");
			}
		}
		loadData();
		initSystemHoliday();
	});
});
/**
 * 加载自定义的节假日
 */
function initUserHoliday(){
	jQ.ajax({
		type:"post",
		url:"controlAjax!getHoliday.action",
		data:{
			year:year
		},
		success : function(data){
			jQ.each(eval("("+data+")"),function(index, content){
				var tdDay=jQ("td."+content.year+"-"+content.month+"-"+content.day);
				if(content.lastday){
					jQ(tdDay).removeClass("nomal").removeClass("nolabel").addClass("freetag").data("data").description=content.description;
					if(content.year==tY&&content.month==tM&&content.day==tD)//今天
						jQ(tdDay).removeClass("holiday");
					else
						jQ(tdDay).addClass("holiday");
						
				}else{
					jQ(tdDay).removeClass("freetag").removeClass("holiday").addClass("nomal").addClass("nolabel");
				}
				jQ(tdDay).find("div.nday").empty().append(content.description);
			}); 
		}
	});
}
/**
 * 加载系统设定的节假日
 */
function initSystemHoliday(){
	jQ.ajax({
		type:"post",
		url:"controlAjax!getSystemHoliday.action",
		data:{
			year:year
		},
		success : function(data){
			jQ.each(eval("("+data+")"),function(index, content){
				for(var u=0;u<content.lastday;u++){
					var systemDate = new Date(content.year,content.month,content.day);
					systemDate.setTime(systemDate.getTime()+u*60*60*24*1000);
					jQ("td."+systemDate.getFullYear()+"-"+(systemDate.getMonth())+"-"+systemDate.getDate()).removeClass("freetag").removeClass("nolabel").addClass("holiday").addClass("rystem");
				}
			}); 
		}
	});
}
/**
 * 加载日历
 */
function loadData(){
	jQ("table.year_mouth thead tr").find("td").removeClass().addClass("nomal");
	for(var i=0;i<12;i++){
		cld = new calendar(year,i);
		for(var j=0;j<42;j++){
			var sD = j - cld.firstWeek;
			var dayTd=jQ("#day_"+i+"_"+j);
			jQ(dayTd).unbind("click",selectData);
			if(sD>-1 && sD<cld.length){
				jQ(dayTd).data("data",{date:{year:year,month:i,day:(sD+1)},description:""});
				jQ(dayTd).bind("click",selectData);
				jQ(dayTd).removeClass().addClass("nomal");
				jQ(dayTd).find("div.sday").empty().append(sD+1);
				var mxlunar = (cld[sD].lDay==1 ? (cld[sD].lMonth + '月') : cDay(cld[sD].lDay));
				jQ(dayTd).find("div.nday").empty().append(mxlunar);
				if(cld[sD].isToday){
					jQ(dayTd).removeClass().addClass("today");
					jQ("#month_"+i).prev().find("tr").eq(0).find("td").removeClass().addClass("today");
				}
				if((j+1)%7==0)
					jQ(dayTd).addClass("weekend");
				jQ(dayTd).addClass(cld[sD].color);
				var s=cld[sD].lunarFestival;
				var ds=s;
				if(s.length>0){
					s = s.length>4 ? (s.substr(0, 3) + '…') : s;
				}else{
					ds = s = cld[sD].solarFestival;
					if(s.length>0){
						s = s.length>4 ? (s.substr(0, 3) + '…') : s;
					}else{
						ds = s = cld[sD].solarTerms;
						s = s.length>4 ? (s.substr(0, 3) + '…') : s;
					}
				}
				if(s.length>0){
					jQ(dayTd).find("div.nday").empty().append(s);
					jQ(dayTd).attr("title",ds);
					jQ(dayTd).data("data").description=ds;
				}else{
					//jQ(dayTd).find("div.nday").empty();
					jQ(dayTd).attr("title","");
					jQ(dayTd).data("data").description="";
				}
				jQ(dayTd).addClass(year+"-"+i+"-"+(sD+1));
			}else{
				jQ(dayTd).removeClass().addClass("no_mouth").find("div").empty();
			}
		}
	}
}
/**
 * 选择日期事件
 */
var selectData = function(){
	var dayObj=this;
	var sDateYear = jQ(dayObj).data("data").date.year;
	var sDateMonth = jQ(dayObj).data("data").date.month;
	var sDateDay = jQ(dayObj).data("data").date.day;
	var holiDaydesc=jQ.trim(jQ(dayObj).data("data").description);
	holiDaydesc=holiDaydesc==""?"休假":holiDaydesc;
	var html="";
	html+="<div>时间:"+sDateYear+"年"+(sDateMonth+1)+"月"+sDateDay+"日</div>";
	if(jQ(dayObj).hasClass("holiday")){
		html+="<div style=\"padding-top:5px;\">描述:<input type=\"text\" style=\"padding-top:5px;\" value=\""+holiDaydesc+"\"/></div>";
		jQ("#ALERT").unbind().html(html).dialog('open').dialog("option","buttons",{
			"删除假期" : function(){
				jQ(this).dialog("close");
				var lunarD = new LunarDay(sDateYear,sDateMonth,sDateDay);
				jQ(dayObj).removeAttr("title").attr("title",lunarD.lunarDays).find("div.nday").empty().append(lunarD.lunarDay);
				jQ(dayObj).data("data").description=lunarD.lunarDays;
				jQ(dayObj).removeClass("holiday").removeClass("freetag").addClass("nomal");
				if(lunarD.isYearHoliday||jQ(dayObj).hasClass("rystem"))
					jQ(dayObj).addClass("nolabel");
			},
			"修改" : function(){
				jQ(this).dialog("close");
				var desc = jQ.trim(jQ(this).find("input").val());
				desc=desc==""?"休假":desc;
				jQ(dayObj).find("div.nday").empty().append(desc.length>4?desc.substr(0,3)+"…":desc);
				jQ(dayObj).attr("title",desc);
				jQ(dayObj).data("data").description=desc;
			}
		});
	}else{
		html+="<div style=\"padding-top:5px;\">描述:<input type=\"text\" value=\""+holiDaydesc+"\"/></div>";
		jQ("#ALERT").unbind().html(html).dialog('open').dialog("option","buttons",{
			"确定" : function(){
				var desc = jQ.trim(jQ(this).find("input").val());
				desc=desc==""?"休假":desc;
				var pattern=/[0-9A-Za-z\u4e00-\u9fa5]+$/;
				if(!pattern.test(desc)){
					alert("只允许输入数字、字母和汉字");
					return;
				}
				jQ(dayObj).find("div.nday").empty().append(desc.length>4?desc.substr(0,3)+"…":desc);
				jQ(dayObj).attr("title",desc);
				jQ(dayObj).addClass("holiday").addClass("freetag").removeClass("nomal").removeClass("nolabel");
				jQ(dayObj).data("data").description=desc;
				jQ(this).dialog("close");
			},
			"取消" : function(){
				jQ(this).dialog("close");
			}
		});
	}
}